package com.shujia.hbase.api;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HConnectionManager;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos;

import java.io.IOException;

public class Demo1AdminTable {
    public static void main(String[] args) throws IOException {

        /**
         * 1、创建连接   和zk建立连接
         * 2、
         *
         */

        //创建hadoop配置文件对象
        Configuration configuration = new Configuration();

        //指定zk地址
        configuration.set("hbase.zookeeper.quorum", "node1:2181,node2:2181,node3:2181");

        //建立连接   和zk的连接
        //HConnection connection = HConnectionManager.createConnection(configuration);


        /**
         * 创建好连接之后就可以进行表的增删改   或者对数据的增删改查操作
         *
         */


        //hBaseAdmin   可以对表结构进行修改的对象
        HBaseAdmin hBaseAdmin = new HBaseAdmin(configuration);

        /**
         * 创建表
         *
         */

        //表的描述对象
        HTableDescriptor student = new HTableDescriptor("student");

        //列簇描述对象
        HColumnDescriptor info = new HColumnDescriptor("info");
        //设置版本号
        info.setMaxVersions(10);

        //火气时间
        //info.setTimeToLive(10);

        //增加列簇
        student.addFamily(info);

        //创建表
        hBaseAdmin.createTable(student);


        if (hBaseAdmin.tableExists("student")) {

            //删除表
            //hBaseAdmin.disableTable("student");
            //hBaseAdmin.deleteTable("student");
        }


        /**
         * hBaseAdmin.flush();
         * hBaseAdmin.majorCompact();
         * hBaseAdmin.split();
         */


    }
}
